
#include <queue>
using namespace std;

class Stack {
public:
    queue<int> q1;
    
    // Push element x onto stack.
    void push(int x) {
        int s = q1.size();
        q1.push(x);
        for (int i = 0; i < s; i++) {
            q1.push(q1.front()); // Move the front element to the end of the queue.
            q1.pop(); // Pop the front element.
        }
    }

    // Remove the element on top of the stack.
    int pop() {
        int val = q1.front();
        q1.pop();
        return val;
    }

    // Get the top element.
    int top() {
        return q1.front();
    }

    // Return whether the stack is empty.
    bool empty() {
        return q1.empty();
    }
};


